In [1]:
%pylab inline
import matplotlib.pyplot as plt
Populating the interactive namespace from numpy and matplotlib

Frequency dependence of the dielectric constant, refractive index, extinction coefficient and reflectivity of a free-electron gas

See Eq. (25.1.61) and Fig. 25.2 in Jenő Sólyom: Fundamentals of the Physics of Solids, Volume 1: Structure and Dynamics (A modern szilárdtestfizika alpajai I. A szilárd testek szerkezete és dinamikája) see here.

Dielectric constant for free electrons

$\varepsilon_r(\omega) = 1 - \frac{\omega_p^2}{\omega^2 +i \omega/\tau}$,

where $\omega_p = \sqrt{\frac{n e^2}{m \varepsilon_0}}$ is the plasma frequency and $\tau$ is the relaxation time.

In [2]:
# Az abra kimentesehez az alabbiakat a plt.show()  ele kell tenni!!! 

#savefig('fig_rainbow_p2_1ray.pdf');  # Abra kimentese
#savefig('fig_rainbow_p2_1ray.eps');  # Abra kimentese

# Abra es fontmeretek
xfig_meret= 8   #    12 nagy abrahoz
yfig_meret= 6    #   12 nagy abrahoz
xyticks_meret= 15  #  20 nagy abrahoz
xylabel_meret= 21  #  30 nagy abrahoz
legend_meret= 21   #  30 nagy abrahoz
In [3]:
def epsilon_r(om_per_omega_p,omega_p_tau):

    tmp = 1- omega_p_tau**2/((om_per_omega_p*omega_p_tau)**2+1j*(om_per_omega_p*omega_p_tau))
    
    return tmp

def Reflection(n_re,k_im):
    tmp = ((n_re-1)**2+k_im**2)/((n_re+1)**2+k_im**2)
    return(tmp)
In [4]:
Npoints=100;
ommax=4;
x = linspace(0.01,ommax,Npoints)

om_p_tau=[1]



#szin=['k','brown','g','b','r']
szin=['k','b','r']

e1_vec = []
e2_vec = []

for j in range(len(om_p_tau)):
    e1_vec.append(epsilon_r(x,om_p_tau[j]).real)
    e2_vec.append(epsilon_r(x,om_p_tau[j]).imag)

figsize(xfig_meret,xfig_meret)

subplot(1,1,1)

[plot(x,e1_vec[j],label=r'$\varepsilon_1$',color='r') \
 for j in range(len(om_p_tau))];

[plot(x,e2_vec[j],label=r'$\varepsilon_2$',color='b') \
      for j in range(len(om_p_tau))];

cim=r'$\varepsilon_1, \varepsilon_2 \quad \mathrm{with }\quad \omega_p \tau= $' +str(om_p_tau[0])
                              
legend(loc='upper right',fontsize=legend_meret)
xlabel(r'$\omega/\omega_{p}$',fontsize=20)
#ylabel(r'$n$',fontsize=20)

ylim(0,1.5)

title(cim,fontsize=20)

grid();
In [5]:
Npoints=100;
ommax=5;
x = linspace(0.01,ommax,Npoints)

om_p_tau=[100]

#szin=['k','brown','g','b','r']
szin=['k','b','r']

e1_vec = []
e2_vec = []

for j in range(len(om_p_tau)):
    e1_vec.append(epsilon_r(x,om_p_tau[j]).real)
    e2_vec.append(epsilon_r(x,om_p_tau[j]).imag)

figsize(xfig_meret,xfig_meret)

subplot(1,1,1)

[plot(x,e1_vec[j],label=r'$\varepsilon_1$',color='r') \
 for j in range(len(om_p_tau))];

[plot(x,e2_vec[j],label=r'$\varepsilon_2$',color='b') \
      for j in range(len(om_p_tau))];

cim=r'$\varepsilon_1, \varepsilon_2 \quad \mathrm{with }\quad \omega_p \tau= $' +str(om_p_tau[0])
                              
legend(loc='lower right',fontsize=legend_meret)
xlabel(r'$\omega/\omega_{p}$',fontsize=20)
#ylabel(r'$n$',fontsize=20)

ylim(-2,1.5)

title(cim,fontsize=20)

grid();
In [6]:
Npoints=100;
ommax=4;
x = linspace(0.01,ommax,Npoints)

om_p_tau=[100]

#szin=['k','brown','g','b','r']
szin=['k','b','r']

n_vec = []
kappa_vec = []

for j in range(len(om_p_tau)):
    n_vec.append(sqrt(epsilon_r(x,om_p_tau[j])).real)
    kappa_vec.append(sqrt(epsilon_r(x,om_p_tau[j])).imag)

figsize(xfig_meret,xfig_meret)

subplot(1,1,1)

[plt.semilogy(x,n_vec[j],label=r'$n$',color='r') \
 for j in range(len(om_p_tau))];

[plt.semilogy(x,kappa_vec[j],label=r'$\kappa$',color='b') \
      for j in range(len(om_p_tau))];


cim=r'$n, \kappa \quad \mathrm{with }\quad \omega_p \tau= $' +str(om_p_tau[0])
legend(loc='upper right',fontsize=legend_meret)
xlabel(r'$\omega/\omega_{p}$',fontsize=20)
#ylabel(r'$n$',fontsize=20)

#ylim(-10**(-6),10**4)

title(cim,fontsize=20)

grid();
In [7]:
Npoints=100;
ommax=2;
x = linspace(0.001,ommax,Npoints)

om_p_tau=[2]

#szin=['k','brown','g','b','r']
szin=['k','b','r']

n_vec = []
kappa_vec = []

for j in range(len(om_p_tau)):
    n_vec.append(sqrt(epsilon_r(x,om_p_tau[j])).real)
    kappa_vec.append(sqrt(epsilon_r(x,om_p_tau[j])).imag)

figsize(xfig_meret,xfig_meret)

subplot(1,1,1)

[plt.semilogy(x,n_vec[j],label=r'$n$',color='r') \
 for j in range(len(om_p_tau))];

[plt.semilogy(x,kappa_vec[j],label=r'$\kappa$',color='b') \
      for j in range(len(om_p_tau))];


cim=r'$n, \kappa \quad \mathrm{with }\quad \omega_p \tau= $' +str(om_p_tau[0])
legend(loc='upper right',fontsize=legend_meret)
xlabel(r'$\omega/\omega_{p}$',fontsize=20)
#ylabel(r'$n$',fontsize=20)

#ylim(-3,2)

title(cim,fontsize=20)

grid();
In [8]:
Npoints=100;
ommax=5;
x = linspace(0.01,ommax,Npoints)

om_p_tau=[1,10,100]

#szin=['k','brown','g','b','r']
szin=['k','b','r']

n_vec = []
kappa_vec = []

for j in range(len(om_p_tau)):
    n_vec.append(sqrt(epsilon_r(x,om_p_tau[j])).real)
    kappa_vec.append(sqrt(epsilon_r(x,om_p_tau[j])).imag)

xfig=3
figsize(2*xfig_meret,xfig_meret)
ymax=2

subplot(1,2,1)

[plot(x,n_vec[j],label=r'$\omega_p \tau=$'+str(om_p_tau[j]),color=szin[j]) \
 for j in range(len(om_p_tau))];

cim2=r'$n$ with damping'
legend(loc='upper right',fontsize=legend_meret)
xlabel(r'$\omega/\omega_{p}$',fontsize=20)
ylabel(r'$n$',fontsize=20)
ylim(0,ymax)
title(cim2,fontsize=20)

subplot(1,2,2)

[plot(x,kappa_vec[j],label=r'$\omega_p \tau=$'+str(om_p_tau[j]),color=szin[j]) \
 for j in range(len(om_p_tau))];


#[plot(x,Reflection(n_vec[j],kappa_vec[j]),label=r'$\omega \tau=$'+str(om_p_tau[j]),color=szin[j]) \
# for j in range(len(om_p_tau))];

cim2=r'$\kappa$ with damping'
legend(loc='upper right',fontsize=legend_meret)
xlabel(r'$\omega/\omega_{p}$',fontsize=20)
ylabel(r'$\kappa$',fontsize=20)
ylim(0,ymax)
title(cim2,fontsize=20)

grid();
In [9]:
Npoints=100;
ommax=2.5;
x = linspace(0.01,ommax,Npoints)

om_p_tau=[0.1,10,100]


#szin=['k','brown','g','b','r']
szin=['k','b','r']

n_vec = []
kappa_vec = []

for j in range(len(om_p_tau)):
    n_vec.append(sqrt(epsilon_r(x,om_p_tau[j])).real)
    kappa_vec.append(sqrt(epsilon_r(x,om_p_tau[j])).imag)

subplot(1,1,1)

[plot(x,Reflection(n_vec[j],kappa_vec[j]),label=r'$\omega_p \tau=$'+str(om_p_tau[j]),color=szin[j]) \
 for j in range(len(om_p_tau))];

cim2=r'$R$ with damping'
legend(loc='upper right',fontsize=legend_meret)
xlabel(r'$\omega/\omega_{p}$',fontsize=20)
ylabel(r'$R$',fontsize=20)

#ylim(0,ymax)

title(cim2,fontsize=20)

grid();
In [ ]: